package smetana.modules.ui.actions;

import com.google.inject.Inject;

import java.io.File;
import java.io.IOException;
import org.apache.pivot.wtk.Alert;
import smetana.modules.io.ExportService;
import smetana.modules.ui.model.CursorDoc;
import smetana.modules.ui.model.CursorPosition;
import smetana.modules.ui.model.UIModel;

/**
 *
 * @author dmitry.mamonov
 */
public abstract class AbstractExportDocumentAction extends AbstractAction {

    public AbstractExportDocumentAction() {
    }
    @Inject
    ExportService exportService;

    @Inject
    UIModel uiModel;

    @Inject
    CursorDoc cursorDoc;

    @Override
    public void perform() {
        if (cursorDoc.hasValue()) {
            try {
                File workbook = exportService.exportDocument(cursorDoc.get().getId());
                exportCompleted(workbook);
            } catch (IOException ex) {
                ex.printStackTrace(); //TODO разобраться с логированием и показом ошибок.
                Alert.alert(ex.getMessage(), uiModel.getWindow());
            }
        } else {
            Alert.alert("Не выбран документ для экспорта.\n", uiModel.getWindow());
        }
    }

    protected abstract void exportCompleted(File workbook);
}
